package edu.ycxy.poetry.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import edu.ycxy.poetry.entity.ShiWen;
import edu.ycxy.poetry.entity.Writer;
import edu.ycxy.poetry.vo.AddPoemVo;
import edu.ycxy.poetry.vo.UpdatePoemVo;

import java.util.List;

/**
 * @Author @xin
 * @createDate 2022/3/8
 * @Description
 */
public interface IShiWenService extends IService<ShiWen> {

    //根据诗词上传时间降序排列前42首古诗
    List<ShiWen> FindPoemsByTime();

    //根据作者姓名查询作者的诗词总数
    Integer CountForWriter(String name);

    //根据古诗名查询古诗的整首诗
    ShiWen findPoemByName(String poemName);

    //根据古诗名查询古诗作者的生平
    Writer findWriterByPoemName(String poemName);

    //查询古诗表中的所有古诗数据
    // PageInfo 保存分页信息和查询出的结果列表
    PageInfo<ShiWen> findAllPoems(Integer pageNum, Integer pageSize);

    //根据古诗的id查询古诗的详细信息
    ShiWen selectById(Integer id);

    //根据作者姓名查询作者的所有诗词
    PageInfo<ShiWen> selectListByAuthor(String name,Integer pageNum,Integer pageSize);

    //根据古诗的类型查询古诗的信息，<唐诗三百首> 等 , 模糊查询，使用CONCAT关键字
    PageInfo<ShiWen> findListByTypeName(String typeName,Integer pageNum,Integer pageSize);

    /**
     *
     */

    // 新增古诗词
    String addPoem(AddPoemVo addPoemVo);

    // 对诗词进行多字段匹配的模糊查询，并将查询出的结果分页展示
    PageInfo<ShiWen> findListBySearchToLike(String search,Integer pageNum,Integer pageSize);

    // 通过id删除诗词
    void deletePoemById(Integer id);

    Integer updatePoemById(UpdatePoemVo updatePoemVo);
}
